ÉeÉNÉjÉJÉã Q&A


USB05 - USB Error -6911 - (kUSBNotResponding) ÇΔÇÕ
(1998 îN 11 åé 16 ì˙)


Q: ÇΔÇ´Ç®ÇË USB error -6911 (kUSBNotResponding) Ç™î≠ê∂ǵNjÇ∑ÅBÉhÉLÉÖÉÅÉìÉeÅ[ÉVÉáÉìÇ…ÇÊÇÍÇŒÅADZÇÃÉGÉâÅ[ÇÕÉfÉoÉCÉXÇÃÉnÉìÉOÇà”ñ°Ç∑ÇÈÇÊǧÇ≈Ç∑ÅBÉoÉXè„Ç≈î≠ê∂ǵÇΩñ‚ëËÇ…ä÷ǵǃDZÇÃÉGÉâÅ[ÇÕâΩÇà”ñ°Ç∑ÇÈÇÃÇ≈ǵÇÂǧǩÅBÇ‹ÇΩÅAÉNÉâÉXÉhÉâÉCÉoÇÃíÜÇ≈DZÇÃÉGÉâÅ[ÇèàóùÇ∑ÇÈÇ…ÇÕǫǧÇ∑ÇÍnjǢǢÇ≈Ç∑Ç©ÅB

A: kUSBNotRespondingErr ÇÕÅAMacintosh è„ÇÃÉzÉXÉgÉRÉìÉgÉçÅ[ÉâÇ™ÉfÅ[É^ì]ëóÇ 3 âÒééÇ›ÅAǪÇÃåãâ ÇΔǵǃ ACK Ç‹ÇΩÇÕ NAK ÉpÉPÉbÉgÇéÛêMǵǻǩǡÇΩDZÇΔÇ™å¥àˆÇ≈î≠ê∂ǵNjÇ∑ÅBDZÇÃÉGÉâÅ[Ç™ï‘Ç≥ÇÍÇÈëOÇ…ÉzÉXÉgÇÕì‡ïîìIÇ… 3 âÒÇÃééçsÇçsǢNjÇ∑Ç™ÅAUSB ÇÕ USB édólèë (ÉäÉrÉWÉáÉì 1.0ÅAÉZÉNÉVÉáÉì 4.5.2) Ç≈ê‡ñæÇ≥ÇÍǃǢÇÈÇÊǧDžÅADZÇÃÉGÉâÅ[ÇåƒÇ—èoǵå≥Ç…ï‘ǵNjÇ∑ÅBÉpÉPÉbÉgÉåÉxÉãÇÃäœì_Ç©ÇÁÇ∑ÇÈÇΔÅAÉzÉXÉgÉRÉìÉgÉçÅ[ÉâÇÕ 3 ǬÇà IN Ç‹ÇΩÇÕ OUT PID (ÉpÉPÉbÉgID) Çî≠çsǵÅAUSB ä÷êîÇ©ÇÁâûìöÇéÛêMǵǻǩǡÇΩÇΔǢǧDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

í èÌÅADZÇÃÉGÉâÅ[ÇÕÉfÉoÉCÉXÇ™ÉnÉìÉOǵǃǢÇÈDZÇΔÇ™å¥àˆÇ≈î≠ê∂ǵNjÇ∑Ç™ÅAÇΔÇ´Ç®ÇËÅAàÍéûìIÇ»ÉGÉâÅ[Ç™å¥àˆÇ≈éûä‘ÇóvÇ∑ÇÈÉäÉNÉGÉXÉgÇÃèàóùíÜDžDZÇÃñ‚ëËÇ™î≠ê∂Ç∑ÇÈèÍçáǙdžÇËÇ‹Ç∑ (NAK ÇÃêîÇ™ëΩÇ¢ÇΔÅAèÛãµÇ™à´âªÇ∑ÇÈã@âÔLJëΩÇ≠Ç»ÇËÇ‹Ç∑)ÅB

ÇΩÇæÇµÇ±ÇÃèÍçáÇÕñ‚ëËÇâåàÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÇ‹Ç∏ÅAUSBClearPipeStallByReference ä÷êîÇégǡǃÉpÉCÉvè„ÇÃÉXÉgÅ[ÉãÇÉNÉäÉAÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBÇ≥ÇÁÇ…ÅAÉzÉXÉgÇΔÉfÉoÉCÉXÇçƒìxìØä˙Ç≥ÇπÇÈïKóvǙdžÇËÇ‹Ç∑ (í èÌÇÕÅAClear_Feature Ç‹ÇΩÇÕ Endpoint_Stall)ÅB

éüÇ…ÅAClear_Feature ÉäÉNÉGÉXÉgÇëóêMÇ∑ÇÈó·Çé¶ÇµÇ‹Ç∑ÅBǻǮÅADZÇÃÉRÅ[ÉhÇÕ USB v1.1 Çà USB.h ÉwÉbÉ_Å[ÉtÉ@ÉCÉãÇÃégópÇëOíÒDžǵǃǢNjÇ∑ÅB


    pb.pbLength = sizeof(pb);
    pb.usbReference = deviceRef;
    pb.usbCompletion = yourAsnchHandlerRoutine;
    pb.usbStatus = noErr;
    pb.pbVersion = kUSBCurrentPBVersion;
    pb.usb.cntl.BMRequestType = USBMakeBMRequestType(kUSBOut, kUSBStandard, kUSBEndpoint);
    pb.usb.cntl.BRequest = kUSBRqClearFeature;
    pb.usb.cntl.WValue = 0;                   // ÉtÉBÅ[É`ÉÉÅ[ÉZÉåÉNÉ^ - Endpoint ÉXÉgÅ[Éã
    pb.usb.cntl.WIndex = endpointNumber;
    pb.usbReqCount = 0;
    pb.usbBuffer = nil;
    pb.usbFlags = 0;
    err = USBDeviceRequest(pb);

égópó· 1  Clear_Feature ÉäÉNÉGÉXÉgÇÃÉTÉìÉvÉã

USBDeviceRequest Çégǡǃ Clear_Feature ÉäÉNÉGÉXÉgÇëóêMÇ∑ÇÈÇΔÇ´ÇÕÅAusbWIndex ÉtÉBÅ[ÉãÉhÇ… endpointNumber Çê›íËǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅBí èÌÅAendpointNumber ÇÕÉfÉoÉCÉXÇç\ê¨Ç∑ÇÈÇΔÇ´Ç…éÊìæÇ≥ÇÍÇ‹Ç∑ÅBÇ‹ÇΩÅAUSBFindNextAssociatedDescriptor åƒÇ—èoǵÇégǡǃ endpointNumber ÇéÊìæÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÇΩÇΔǶnjÅAèoóÕÉGÉìÉhÉ|ÉCÉìÉgÇ…ÇÕ 0x01ÅAì¸óÕÉGÉìÉhÉ|ÉCÉìÉgÇ…ÇÕ 0x81 ÇÃÇÊǧǻílÇê›íËǵNjÇ∑ÅB USB v1.1 à»ç~Ç≈ÇÕÅAusbWIndex ÉtÉBÅ[ÉãÉhÇ… endpointNumber Çê›íËÇ∑ÇÈÇΔǢǧóvåèÇä»ó™âªÇ∑ÇÈÇΩÇflé·ä±ÇÃïœçXÇ™ÉCÉìÉvÉäÉÅÉìÉgÇ≥ÇÍNjǵÇΩÅBusbWIndex ÉtÉBÅ[ÉãÉhÇê›íËÇ∑ÇÈë„ÇÌÇËÇ…ÅAkUSBAddressRequest ÉrÉbÉgÇÉZÉbÉgǵǃ usbFlags ÉtÉBÅ[ÉãÉhÇê›íËǵNjÇ∑ÅBUSB Manager v1.1 à»ç~Ç≈ÇÕÅAusbFlags ÉtÉBÅ[ÉãÉhÇÉ`ÉFÉbÉNǵǃ kUSBAddressRequest ÉrÉbÉgÇ™ÉZÉbÉgÇ≥ÇÍǃǢÇÈǩǫǧǩÇämîFǵÅA"usb.cntl.BMRequestType" ÉtÉBÅ[ÉãÉhÇ™ÉGÉìÉhÉ|ÉCÉìÉgÇ…ëŒâûǵǃǢÇÈǩǫǧǩÇÉ`ÉFÉbÉNǵNjÇ∑ÅBÇ‹ÇΩÅADZÇÍÇÁÇÃóvåèÇ™êÆÇ¡ÇƒÇ¢ÇÍÇŒÅAusbReference ÉtÉBÅ[ÉãÉhÇ≈ìnÇ≥ÇÍÇΩÉGÉìÉhÉ|ÉCÉìÉgéQèΔÇ…ëŒâûÇ∑ÇÈ usbWIndex ÉtÉBÅ[ÉãÉhÇ… endpointNumber ÇèëÇ´çûǛNjÇ∑ÅBéüÇÃÉTÉìÉvÉãÉRÅ[ÉhÇÕÅAUSB v1.1 à»ç~Ç…â¡Ç¶ÇÁÇÍÇΩDZÇÃÇÊǧǻïœçXÇãÔëÃìIÇ…é¶ÇµÇƒÇ¢Ç‹Ç∑ÅBǻǮÅAégópó· 1 Ç…é¶ÇµÇΩÉRÅ[ÉhLJ USB v1.1 à»ç~ÇΔÇΔLJDžê≥èÌÇ…ìÆçÏǵNjÇ∑ÅBë∂ç›Ç∑ÇÈ Mac OS USB ÇÃÉoÅ[ÉWÉáÉìÇîªíËÇ∑ÇÈÇ…ÇÕÅAGestalt ÉZÉåÉNÉ^ 'usbv' ÇégópǵNjÇ∑ÅB


    pb.pbLength = sizeof(pb);
    pb.usbReference = endpointRef;
    pb.usbCompletion = yourAsnchHandlerRoutine;
    pb.usbStatus = noErr;
    pb.pbVersion = kUSBCurrentPBVersion;
    pb.usb.cntl.BMRequestType =
         USBMakeBMRequestType(kUSBOut, kUSBStandard, kUSBEndpoint);
    pb.usb.cntl.BRequest = kUSBRqClearFeature;
    pb.usb.cntl.WValue = 0;         // ÉtÉBÅ[É`ÉÉÅ[ÉZÉåÉNÉ^ - Endpoint ÉXÉgÅ[Éã
    pb.usbReqCount = 0;
    pb.usbBuffer = nil;
    pb.usbFlags = kUSBAddressRequest;
    err = USBDeviceRequest(pb);

égópó· 2  USB 1.1 à»ç~Ç…ëŒâûÇ∑ÇÈë„ë÷ Clear_Feature request

ǻǮÅAÉzÉXÉgÇ™ÉfÉoÉCÉXÇΔí êMÇçsǡǃǢÇÈÇΔÇ´Ç… USB ÉPÅ[ÉuÉãÇ™ÇÕÇ∏ÇÍÇΩèÍçáDžLJ kUSBNotRespondingErr Ç™î≠ê∂Ç∑ÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBDZÇÃÉGÉâÅ[Ç™î≠ê∂ǵÇΩÇΔÇ´ÇÕÅAClear_Feature ÉäÉNÉGÉXÉgÇëóêMǵǃÇ≠ÇæÇ≥Ç¢ÅBÉfÉoÉCÉXÇÃÉPÅ[ÉuÉãÇ™ÇÕÇ∏ÇÍǃǢÇÈÇΔÅAUSBDeviceRequest ÇÕï Çà -6911 ÉGÉâÅ[Çï‘Ç∑DZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB


-- Rich Kubota
Worldwide Developer Technical Support